-
Notifications
You must be signed in to change notification settings - Fork 628
[PWGJE] Add PCH for JET tasks #14655
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
O2 linter results: ❌ 1 errors, |
Heavily speeds up compilation
|
what is the time difference in compilation that you observe? should we consider this for other JE tasks too? also, are there some other headers that do not frequently change in O2Physics that we should consider precompiling? |
|
@singiamtel very nice. Could you share numbers on the improvement? How does it handle changes in the framework headers? Will it actually notice and recompile? That's where the previous attempt I had did not converge. |
|
This is great, together with my changes at the framework level this will reduce the compilation times very significantly. However, I suggest restructuring this to make it more transparent for the end users, we do not want to rewrite every CMakeLists.txt in O2Physics. We can introduce a convention on the "central" target for each PWG, that collects all the universal headers and then update |
|
@vkucera on a separate note, could we please make sure the O2 linter does not tell people to change QA to Qa ? |
Why? |
|
Because the abbreviation of Quality Assurance is QA, not Qa. |
Yet we have Capitalising only the first letter of each word-like segment is the only way to keep the CamelCase convention for structs, files, and types consistent with the kebab-case convention for workflows and devices. |
|
I am not sure I understand. Can't you simply add the exceptions? There is hopefully a finite number of them. If the tools are wrong, we should fix the tools, or at least remove the check. |
The error message is correct. O2 linter is checking name consistency in the full struct-device-workflow-file structure within the existing O2 conventions and algorithms.
Adding exceptions would defeat the purpose of testing consistency, break the compatibility with |
|
@vkucera I am not sure why you say that the name of the file should be related to the name of the task inside. You can declare multiple tasks in the same workflow. That said, my statement still holds. Tools should not enforce something which is against common sense because something else is broken. We should either fix the broken part or leave the common sense alone and disable the check. In that regard, a better behaviour for |
Because it's common sense to name files after their content. The struct-device-workflow-file name correspondence makes it trivial to deduce one name from another. E.g. if I want to know where a device is implemented, I get the file name by converting it to camelCase. Multiple tasks are not a problem. This was discussed one year ago and approved as error severity.
The statement holds only if you ignore the role of capitalisation as a word divider in camelCase.
As I said, this introduces ambiguity and gives green light to unreadable names.
Of course, if you change the device name generation algorithm, I will have to adjust O2 linter accordingly. But this should have been discussed in a meeting with the analysis coordinator. |
So does removing
I do git grep or fuzzy finding in my editor, even without needing the name of the file. Please do not call "common sense" the limitations of your tools or their configuration. You can get to it in many ways. I also question the actual usefulness of the correspondence, given we do support custom TaskNames and multiple tasks per file.
Yes, and in the same meeting I said that even one "false positive" to me it's enough to consider the check wrong and dangerous. Someone could have fixed the linter report by renaming the task to -q-a (which is less of a burden compared to changing the filename) and Hyperloop would have broken as well.
Yes, and as this PR shows, I am not the only one. Moreover, I question the word divider idea in the first place, because that would mean that
There is no ambiguity if you do the substitutions in reverse size order of the exceptions, as per comment in the code. Concerning unreadable names,
Now that I know the implications, it will be in the meeting tomorrow, of course. |
Heavily speeds up compilation
CC @ktf